Оптимизация Btrfs для SSD и NVMe
Btrfs отлично работает на твердотельных накопителях, если включить правильные опции монтирования и следить за TRIM.
Рекомендованные опции монтирования (/etc/fstab)
NVMe (производительность + экономия места)
noatime,ssd,space_cache=v2,discard=async,compress=zstd:5,autodefrag
SATA SSD (сбалансированно и безопасно)
noatime,ssd,space_cache=v2,discard=async,compress=zstd:3,autodefrag
Пояснения:
noatimeуменьшает лишние записи; на SSD/NVMe предпочтительнееrelatime.compress=zstd:N— zstd даёт лучшую компрессию и меньше фрагментирует; N=3–5.discard=async— асинхронный TRIM; не тормозит как синхронныйdiscard.autodefrag— полезно для часто меняющихся мелких файлов (профили браузера, сборки), не обязательно для образов/VM.
Пример строки fstab:
UUID=<uuid> / btrfs subvol=@,noatime,ssd,space_cache=v2,discard=async,compress=zstd:3,autodefrag 0 0
Планировщик ввода-вывода
- NVMe/современные SSD:
none - Старые контроллеры SATA:
mq-deadline
Проверка/установка (пример для nvme0n1):
cat /sys/block/nvme0n1/queue/scheduler
echo none | sudo tee /sys/block/nvme0n1/queue/scheduler
TRIM (fstrim)
Проверь статус и включи периодический TRIM:
sudo systemctl status fstrim.timer
sudo systemctl enable --now fstrim.timer
Советы
- Для подкаталогов с большими файлами (VM, контейнеры, образы) лучше отдельный subvolume без
compressи часто безautodefrag. - Снапшоты не заменяют бэкапы — держите резервные копии отдельно.